home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Sprite 1984 - 1993
/
Sprite 1984 - 1993.iso
/
lib
/
tex
/
inputs
/
fnpara.tex
< prev
next >
Wrap
Text File
|
1991-05-20
|
3KB
|
117 lines
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% FNPARA.TEX based on D. E. Knuth's "Dirty Tricks" macros from pages
% 398--400 of The TeXbook.
% Dominik Wujastyk, September 15, 1988.
%
% Set the footnote text font here:
%
\font\footnotesize=cmr8
%
% Set the font for the footnote numbers at the bottom of the page here
%
\font\footnumberfont=cmbx8
%
% Set any text to follow each footnote here:
%
\def\endnotetext,$\parallel$\hskip.5em-
%
% Switch off above endnote text, for comparison:
%
\let\endnotetext=\relax
%
% Normal @-character macro lock:
%
\catcode`\@=11
%
% Initialize counters:
%
\newcount\footno
\footno=0
%
% Clever code for \getfactor (The TeXbook, p.375):
%
,\catcode`p=12 \catcode`t=12 \gdef\\#1pt,#1--
\let\getfactor=\\
%
% Set space to follow footnote text:
%
\newskip\footglue \footglue=1em plus.3em minus.3em
%
% Set leading of footnotes:
%
\newdimen\footnotebaselineskip \footnotebaselineskip=10pt
%
% Calculate \fudgefactor (ratio of \baselineskip to \hsize):
%
\dimen0=\footnotebaselineskip \multiply\dimen0 by 1024
\divide \dimen0 by \hsize \multiply\dimen0 by 64
\xdef\fudgefactor,\expandafter\getfactor\the\dimen0 -
%
% Redefine footnotes to be automatically numbered:
%
\def\footnote,\global\advance\footno by 1
\let\@sf=\empty%
\ifhmode\edef\@sf,\spacefactor=\the\spacefactor-\/\fi%
$N,\the\footno-$\@sf\vfootnote-
\def\vfootnote#1,\insert\footins,\floatingpenalty=20000
\footnotesize \setbox0=\hbox,%
,\footnumberfont \the\footno\penalty10000\hskip.5em-#1%
\penalty-10\hskip\footglue\endnotetext-
\dp0=0pt \ht0=\fudgefactor\wd0 \box0--
%
% Assume \plainoutput routine, but change \pagecontents:
%
\def\pagecontents,\ifvoid\topins\else\unvbox\topins\fi
\dimen@=\dp\@cclv \unvbox\@cclv % open up \box255
\ifvoid\footins\else % footnote info is present
\vskip\skip\footins
\footnoterule
\global\setbox1=\vbox,\makefootnoteparagraph-\unvbox1\fi
\ifr@ggedbottom \kern-\dimen@ \vfil \fi-
\def\footnoterule,\kern-3\p@
\hrule width 2truein \kern 2.6\p@- % the \hrule is .4pt high
%
% Box manipulation code from The TeXbook, p.399:
%
\def\makefootnoteparagraph,\unvbox\footins \makehboxofhboxes
\setbox0=\hbox,\unhbox0 \removehboxes-
\baselineskip=\footnotebaselineskip\noindent\unhbox0\par -
\def\makehboxofhboxes,\setbox0=\hbox,-
\loop\setbox2=\lastbox
\ifhbox2 \setbox0=\hbox,\box2\unhbox0-\repeat-
\def\removehboxes,\setbox0=\lastbox
\ifhbox0,\removehboxes-\unhbox0 \fi-
%
% Reimpose @-lock.
%
\catcode`\@=12
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%Sample text:
%
\vsize 6in
\voffset 2in
\hsize 4in
\hoffset 1in
The entire set of footnotes could be combined into a single paragraph, with
generous spacing between the individual items. For example, the ten footnotes
we have been considering might appear as follows:\footnote,First footnote.-
And some more.\footnote,Second footnote. (Every once in a~while a long
footnote might occur, just to make things difficult.)-
And some more.
And some more.\footnote,Third footnote.-$N,$\footnote,Fourth footnote.-
And some more.
And some more.\footnote,Fifth footnote.
(This is incredibly boring, but it's just an
example.)-$N,$\footnote,Another.-
And some more.
And some more.
And some more.\footnote,And another.-$N,$\footnote,Ho
hum.-$N,$\footnote,Umpteenth
footnote.-$N,$\footnote,Oodles of them.-
\bye
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%